package com.zwh.mangomall.util;

import org.apache.commons.lang.StringUtils;

import java.util.regex.Pattern;

/**
 * 正则工具类
 */
public class MatchUtil {

    /**
     * 运营商号段如下：
     * 中国联通号码：130、131、132、145（无线上网卡）、155、156、185（iPhone5上市后开放）、186、176（4G号段）、
     *               175（2015年9月10日正式启用，暂只对北京、上海和广东投放办理）
     * 中国移动号码：134、135、136、137、138、139、147（无线上网卡）、150、151、152、157、158、159、182、183、187、188、178
     * 中国电信号码：133、153、180、181、189、177、173、149 虚拟运营商：170、1718、1719
     * 手机号前3位的数字包括：
     * 1 :1
     * 2 :3,4,5,7,8
     * 3 :0,1,2,3,4,5,6,7,8,9
     */
    private static final String REGEX = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$";

    /**
     * 邮箱格式
     */
    private static final String EMAIL = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";

    /**
     * 判断传入的是不是手机号
     * @param mangoIdOrPhone
     * @return
     */
    public static Boolean isPhone(String mangoIdOrPhone){
        return mangoIdOrPhone.length() == 11 && Pattern.compile(REGEX).matcher(mangoIdOrPhone).matches();
    }

    /**
     * 判断是否为邮箱
     * @param email
     * @return
     */
    public static Boolean isEmail(String email){
        return Pattern.compile(EMAIL).matcher(email).matches();
    }

    /**
     * 判断用户名长度
     * @param username
     * @return
     */
    public static Boolean lengthUsername(String username){
        return username.length() >= 1 && username.length() <= 10;
    }

    /**
     * 判断密码长度
     * @param password
     * @return
     */
    public static Boolean lengthPassword(String password){
        return password.length() >= 6 && password.length() <= 16;
    }

}
